import TileInfo from '@arcgis/core/layers/support/TileInfo.js'
import WebTileLayer from '@arcgis/core/layers/WebTileLayer.js'

// 创建瓦片信息
const tileInfo = new TileInfo({
  dpi: 96,
  origin: {
    x: -180,
    y: 90
  },
  spatialReference: {
    wkid: 4490 // 定义空间参考
  },
  lods: [
    {
      level: 0,
      levelValue: '1',
      resolution: 0.703125,
      scale: 295497593.05875003
    },
    {
      level: 1,
      levelValue: '2',
      resolution: 0.3515625,
      scale: 147748796.52937502
    },
    {
      level: 2,
      levelValue: '3',
      resolution: 0.17578125,
      scale: 73874398.264687508
    },
    {
      level: 3,
      levelValue: '4',
      resolution: 0.087890625,
      scale: 36937199.132343754
    },
    {
      level: 4,
      levelValue: '5',
      resolution: 0.0439453125,
      scale: 18468599.566171877
    },
    {
      level: 5,
      levelValue: '6',
      resolution: 0.02197265625,
      scale: 9234299.7830859385
    },
    {
      level: 6,
      levelValue: '7',
      resolution: 0.010986328125,
      scale: 4617149.8915429693
    },
    {
      level: 7,
      levelValue: '8',
      resolution: 0.0054931640625,
      scale: 2308574.9457714846
    },
    {
      level: 8,
      levelValue: '9',
      resolution: 0.00274658203125,
      scale: 1154287.4728857423
    },
    {
      level: 9,
      levelValue: '10',
      resolution: 0.001373291015625,
      scale: 577143.73644287116
    },
    {
      level: 10,
      levelValue: '11',
      resolution: 0.0006866455078125,
      scale: 288571.86822143558
    },
    {
      level: 11,
      levelValue: '12',
      resolution: 0.00034332275390625,
      scale: 144285.93411071779
    },
    {
      level: 12,
      levelValue: '13',
      resolution: 0.000171661376953125,
      scale: 72142.967055358895
    },
    {
      level: 13,
      levelValue: '14',
      resolution: 8.58306884765625e-5,
      scale: 36071.483527679447
    },
    {
      level: 14,
      levelValue: '15',
      resolution: 4.291534423828125e-5,
      scale: 18035.741763839724
    },
    {
      level: 15,
      levelValue: '16',
      resolution: 2.1457672119140625e-5,
      scale: 9017.8708819198619
    },
    {
      level: 16,
      levelValue: '17',
      resolution: 1.0728836059570313e-5,
      scale: 4508.9354409599309
    },
    {
      level: 17,
      levelValue: '18',
      resolution: 5.3644180297851563e-6,
      scale: 2254.4677204799655
    },
    {
      level: 18,
      levelValue: '19',
      // eslint-disable-next-line @typescript-eslint/no-loss-of-precision
      resolution: 2.68220901489257815e-6,
      // eslint-disable-next-line @typescript-eslint/no-loss-of-precision
      scale: 1127.23386023998275
    },
    {
      level: 19,
      levelValue: '20',
      // eslint-disable-next-line @typescript-eslint/no-loss-of-precision
      resolution: 1.341104507446289075e-6,
      // eslint-disable-next-line @typescript-eslint/no-loss-of-precision
      scale: 563.616930119991375
    }
  ]
})

// 创建天地图影像图层
const SpaceLayer = new WebTileLayer({
  // 天地图影像地图URL模板
  urlTemplate: 'http://{subDomain}.tianditu.com/DataServer?T=vec_c&x={col}&y={row}&l={level}&tk=83199f8fe174f4e1fae9c0c8d099f4eb',
  subDomains: ['t0', 't1', 't2', 't3', 't4', 't5', 't6', 't7'], // 子域
  tileInfo, // 使用之前创建的瓦片信息
  copyright: '天地图', // 版权信息
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
  // @ts-expect-error
  spatialReference: {
    wkid: 4490 // 空间参考
  }
})

// 创建天地图影像注记图层
const AnnotationLayer = new WebTileLayer({
  // 天地图影像地图URL模板
  urlTemplate: 'http://{subDomain}.tianditu.com/DataServer?T=cia_c&x={col}&y={row}&l={level}&tk=4bec4d05a1da83d47add47b1027eb04a',
  subDomains: ['t0', 't1', 't2', 't3', 't4', 't5', 't6', 't7'], // 子域
  tileInfo, // 使用之前创建的瓦片信息
  copyright: '天地图', // 版权信息
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
  // @ts-expect-error
  spatialReference: {
    wkid: 4490 // 空间参考
  }
})
export { SpaceLayer, AnnotationLayer }
